#ifndef TASK_H
#define TASK_H

#include <iostream>
#include <pthread.h>

// 任务抽象类
class Task
{
public:
    virtual void Execute() = 0;

private:
};

// 原料抽象类
class Ingredient
{
    public:
        virtual std::string Get() = 0;

    private:
};

// 面团
class Dough :public Ingredient
{
    public:
    std::string Get() ;// override;
    private:
};

// 厚面团
class ThickDough :public Dough
{
public:
private:
};

// 薄面团
class ThinDough :public Dough
{
public:
private:
};

// 酱汁
class Sauce :public Ingredient
{
public:
private:
};

// 蛤蜊
class Clam :public Ingredient
{
public:
private:
};

// 新鲜蛤蜊
class FreshClam :public Clam
{
public:
private:
};

// 冰冻蛤蜊
class FrozeClam :public Clam
{
public:
private:
};

// 奶酪
class Cheese :public Ingredient
{
public:
private:
};

// 蔬菜
class Veggies :public Ingredient
{
public:
private:
};

class Pepperoni :public Ingredient
{
public:
private:
};

// 工厂原料抽象类
// class IngredientFactory
// {
//     public:
//         virtual std::string CreateDough() = 0;
//         virtual std::string CreateSauce() = 0;
//         virtual std::string CreateCheese() = 0;
//         virtual std::string CreatePepperoni() = 0;
//         virtual std::string CreateClam() = 0;
//         virtual std::string CreateVeggies() = 0;
//     protected:
//     Dough _dough;
//     Sauce _sauce;
//     Cheese _cheese;
//     Pepperoni _pepperoni;
//     Clam _clam;
//     Veggies _veggies;
// };

// // 工厂派生类
// class NYIngredientFactory :public IngredientFactory
// {
// public:

// private:
// };

// class PizzaStore
// {
// public:
// private:
// };

// // Pizza店派生类
// class NYPizzaStore :public PizzaStore
// {
// public:
// private:
// };


#endif